﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using DataAcessLayer;
using System.Data.Common;
using QuanLyShop.DTO;

namespace QuanLyShop.DAO
{
  public  class DonNhapHangDAO
    {
        #region 1. Load danh sách đơn nhập hàng
        public  DataTable LayDanhSachDonNhapHang()
        {
            DataTable dt = null;
            try
            {
                DataProvider dp = new DataProvider();
                string sql = "select * from DON_NHAP_HANG dnh where dnh.TINHTRANG = 0";
                DbCommand command = dp.CreateCommand();
                command.CommandType = CommandType.Text;
                command.CommandText = sql;
                dt = dp.ExecuteSelectCommand(command);
            }
            catch (Exception e)
            {

                throw new Exception("Lỗi rồi" + e.ToString());
            }
            return dt;

        }
        #endregion

        #region 2. Thêm Đơn Nhập Hàng

        public int ThemDonNhapHang(DonNhapHangDTO dnh)
        {
            int kq = 0;
            try
            {

                DataProvider dp = new DataProvider();
                String sql = "insert into DON_NHAP_HANG(ID_DONNHAPHANG,ID_DOITAC,NGAYNHAP,TONGTIEN,THONGTINTHEM,TINHTRANG) values ('"+dnh.ID_DonNhapHang+"','" + dnh.ID_DoiTac + "','" + dnh.NgayNhap + "'," + dnh.TongTien + ",N'" + dnh.ThongTinThem + "',"  + dnh.TinhTrang + ")";
                DbCommand command = dp.CreateCommand();
                command.CommandType = CommandType.Text;
                command.CommandText = sql;
                dp.ExecuteNonQueryCommand(command);
                kq = 1;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return kq;

        }
        #endregion


        #region 3. Cập nhật đơn nhập hàng

        public int CapNhatDonNhapHang(DonNhapHangDTO dnh)
        {
            int kq = 0;
            try
            {

                DataProvider dp = new DataProvider();
                String sql = "update DON_NHAP_HANG set ID_DOITAC='" + dnh.ID_DoiTac + "',NGAYNHAP='" + dnh.NgayNhap + "',TONGTIEN=" + dnh.TongTien + ",THONGTINTHEM=N'" + dnh.ThongTinThem + "',TINHTRANG=" + dnh.TinhTrang + " where ID_DONNHAPHANG='" + dnh.ID_DonNhapHang+"'";
                DbCommand command = dp.CreateCommand();
                command.CommandType = CommandType.Text;
                command.CommandText = sql;
                dp.ExecuteNonQueryCommand(command);
                kq = 1;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return kq;

        }
        #endregion

        #region 4. Mã tăng tự động

        public DataTable Lay()
        {

            DataTable dt = null;
            try
            {
                DataProvider dp = new DataProvider();
                string sql = "select ID_DONNHAPHANG from DON_NHAP_HANG";
                DbCommand command = dp.CreateCommand();
                command.CommandType = CommandType.Text;
                command.CommandText = sql;
                dt = dp.ExecuteSelectCommand(command);

            }
            catch (Exception e)
            {

                throw new Exception("Lỗi rồi" + e.ToString());
            }
            return dt;
        }
        public string MaTangTuDong()
        {
             string str = "";
           PhatSinhMaTangTuDong l = new PhatSinhMaTangTuDong();
           DataTable dt = Lay();
           string c = l.LayChuoiNgayThangNam();
           if (dt.Rows.Count == 0)
           {
               str = c + "0001";
           }
           else
           {
               string a = dt.Rows[dt.Rows.Count - 1].ItemArray[0].ToString();
               string b = a.Substring(0, 6);
               if (b.Equals(c))
               {
                   string p = a.Substring(6);
                   int so = int.Parse(p);
                   so = so + 1;
                   if (so < 10)
                   {
                       str = "000" + so;

                   }
                   else if (so < 100)
                   {
                       str = "00" + so;

                   }
                   else if (so < 1000)
                   {
                       str = "0" + so;
                   }
                   str = c + str;
               }
               else
               {
                   str = c + "0001";
               }
           }
            return str;
        }
        #endregion
    }
}
